package org.nanotek;

import java.util.Date;

import org.nanotek.cms.domain.TemporalImaginary;

@SuppressWarnings({ "serial", "hiding" })
public class KongDate<$I extends DateBase<Kong<Date>> , I extends Kong<Date>>  extends DateBase<Kong<Date>> implements TemporalImaginary<$I, Kong<Date>> {

	protected DateBase<Kong<Date>> date;
	protected Kong<?> id;

	@SuppressWarnings("unchecked")
	public KongDate() {

		super(new Date(System.currentTimeMillis()));
		this.date = new DateBase<Kong<Date>>(super.dateCreation);
	}

	@SuppressWarnings("unchecked")
	@Override
	public Class<$I> getClazz() {
		return (Class<$I>) this.getClass();
	}

	@Override
	public $I getInstance() {
		return ($I) this;
	}

	@Override
	public Kong<?> get() {
		return  id;
	}


	@Override
	public Kong<?> getId() {
		return id;
	}

	@Override
	//Passing the Date CReation will return an instance that
	// represents
	public Kong<Date> getTemporalImaginary(Kong<Kong<?>> kong) {
		return (Kong<Date>) id;
	}

}
